package com.rf.richfitwheel.dyn.business.entity;

import com.fasterxml.jackson.databind.JsonNode;
import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.Table;
import java.io.Serializable;
import java.util.List;


/**
 * 应用设计记录 实体类。
 *
 * @author richfitwheel
 * @since 2025-02-18
 */
@Table("sys_business_designer")
public class SysBusinessDesigner implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @Id
    private String id;

    /**
     * 版本
     */
    private Long version;

    /**
     * 应用设计编码
     */
    private String designerCode;

    /**
     * 应用设计名称
     */
    private String designerName;

    /**
     * 业务类型：sys_business_type.type_code
     */
    private String typeCode;

    /**
     * 是否含流程
     */
    private String hasTask;

    /**
     * 流程定义编码
     */
    private String taskDefCode;

    /**
     * 新建时表单
     */
    private String newFormId;

    /**
     * 修改时表单
     */
    private String modFormId;

    /**
     * 详情表单
     */
    private String detailFormId;

    /**
     * 菜单路径
     */
    private String menuTxt;

    /**
     * 是否自定义接口
     */
    private String customizeApi;

    /**
     * 新增接口url
     */
    private String addApiUrl;

    /**
     * 修改接口url
     */
    private String updateApiUrl;

    /**
     * 表单数据加载接口
     */
    private String detailApiUrl;

    /**
     * 是否已发布：0-否、1-是
     */
    private String resStatus;

    /**
     * 页面类型：1-管理页、2-填报页
     */
    private String pageType;

    /**
     * 主表名
     */
    private String mainTable;

    /**
     * 新增时表单数据
     */
    @Column(ignore = true)
    private String newFormJson;

    /**
     * 修改时表单数据
     */
    @Column(ignore = true)
    private String modFormJson;

    /**
     * 详情时表单数据
     */
    @Column(ignore = true)
    private String detailFormJson;

    /**
     * 表单数据结构对象
     */
    @Column(ignore = true)
    private JsonNode formDataSchema;

    @Column(ignore = true)
    private List<SysBusinessDesignerComponent> componentList;

    /**
     * 子表名，多个逗号隔开
     */
    private String subTable;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Long getVersion() {
        return version;
    }

    public void setVersion(Long version) {
        this.version = version;
    }

    public String getDesignerCode() {
        return designerCode;
    }

    public void setDesignerCode(String designerCode) {
        this.designerCode = designerCode;
    }

    public String getDesignerName() {
        return designerName;
    }

    public void setDesignerName(String designerName) {
        this.designerName = designerName;
    }

    public String getTypeCode() {
        return typeCode;
    }

    public void setTypeCode(String typeCode) {
        this.typeCode = typeCode;
    }

    public String getHasTask() {
        return hasTask;
    }

    public void setHasTask(String hasTask) {
        this.hasTask = hasTask;
    }

    public String getTaskDefCode() {
        return taskDefCode;
    }

    public void setTaskDefCode(String taskDefCode) {
        this.taskDefCode = taskDefCode;
    }

    public String getNewFormId() {
        return newFormId;
    }

    public void setNewFormId(String newFormId) {
        this.newFormId = newFormId;
    }

    public String getModFormId() {
        return modFormId;
    }

    public void setModFormId(String modFormId) {
        this.modFormId = modFormId;
    }

    public String getDetailFormId() {
        return detailFormId;
    }

    public void setDetailFormId(String detailFormId) {
        this.detailFormId = detailFormId;
    }

    public String getMenuTxt() {
        return menuTxt;
    }

    public void setMenuTxt(String menuTxt) {
        this.menuTxt = menuTxt;
    }

    public String getCustomizeApi() {
        return customizeApi;
    }

    public void setCustomizeApi(String customizeApi) {
        this.customizeApi = customizeApi;
    }

    public String getAddApiUrl() {
        return addApiUrl;
    }

    public void setAddApiUrl(String addApiUrl) {
        this.addApiUrl = addApiUrl;
    }

    public String getUpdateApiUrl() {
        return updateApiUrl;
    }

    public void setUpdateApiUrl(String updateApiUrl) {
        this.updateApiUrl = updateApiUrl;
    }

    public String getDetailApiUrl() {
        return detailApiUrl;
    }

    public void setDetailApiUrl(String detailApiUrl) {
        this.detailApiUrl = detailApiUrl;
    }

    public String getResStatus() {
        return resStatus;
    }

    public void setResStatus(String resStatus) {
        this.resStatus = resStatus;
    }

    public String getPageType() {
        return pageType;
    }

    public void setPageType(String pageType) {
        this.pageType = pageType;
    }

    public String getMainTable() {
        return mainTable;
    }

    public void setMainTable(String mainTable) {
        this.mainTable = mainTable;
    }

    public String getSubTable() {
        return subTable;
    }

    public void setSubTable(String subTable) {
        this.subTable = subTable;
    }

    public String getNewFormJson() {
        return newFormJson;
    }

    public void setNewFormJson(String newFormJson) {
        this.newFormJson = newFormJson;
    }

    public String getModFormJson() {
        return modFormJson;
    }

    public void setModFormJson(String modFormJson) {
        this.modFormJson = modFormJson;
    }

    public String getDetailFormJson() {
        return detailFormJson;
    }

    public void setDetailFormJson(String detailFormJson) {
        this.detailFormJson = detailFormJson;
    }

    public JsonNode getFormDataSchema() {
        return formDataSchema;
    }

    public void setFormDataSchema(JsonNode formDataSchema) {
        this.formDataSchema = formDataSchema;
    }

    public List<SysBusinessDesignerComponent> getComponentList() {
        return componentList;
    }

    public void setComponentList(List<SysBusinessDesignerComponent> componentList) {
        this.componentList = componentList;
    }
}
